#include <siri/db/db.h>
#include <siri/db/series.h>
#include <siri/db/points.h>
+#include <unistd.h>
#define MAX_BUFFER_SZ 10485760
uint64_t * ts,
qp_via_t * val);
+int siridb_buffer_fsync(siridb_t * siridb);
+
+
#endif /* SIRIDB_BUFFER_H_ */
BUFFER_create_new(siridb, series);
}
+int siridb_buffer_fsync(siridb_t * siridb)
+{
+ int buffer_fd = fileno(siridb->buffer_fp);
+ return (buffer_fd != -1) ? fsync(buffer_fd) : -1;
+}
+
/*
* Returns 0 if successful or -1 in case of an error.
*/
siridb_insert_local_t * ilocal = (siridb_insert_local_t *) handle->data;
qp_unpacker_t * unpacker = &ilocal->unpacker;
+ siridb_t * siridb;
/*
* we check for siri_err because siridb_series_add_point()
return;
}
- siridb_t * siridb = ilocal->siridb;
+ siridb = ilocal->siridb;
if (siridb->buffer_fp == NULL && siridb_buffer_open(siridb))
{
ilocal->status = INSERT_LOCAL_ERROR;
}
}
+
uv_mutex_unlock(&siridb->series_mutex);
uv_mutex_unlock(&siridb->shards_mutex);
#include <logger/logger.h>
#include <siri/db/server.h>
#include <siri/heartbeat.h>
+#include <siri/db/buffer.h>
#include <uv.h>
#if DEBUG
siridb_node = siridb_node->next;
}
+
+ /* flush the buffer, maybe on each insert or another interval? */
+ if (siridb_buffer_fsync(siridb))
+ {
+ log_critical("fsync() has failed on the buffer file");
+ }
}